home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / apps / ibrowse / ibrowse.h < prev    next >
C/C++ Source or Header  |  1994-08-01  |  3KB  |  99 lines

  1. /*
  2.  * Copyright 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. /*
  18.     ibrowse.h - Definitions for ibrowse.c, an image browser.
  19.  
  20.     Tim Heidmann
  21.     Version 1.2.2
  22.     November 30, 1993
  23.  
  24.     copyright 1993, Silicon Graphics
  25. */
  26.  
  27. #include <dirent.h>
  28.  
  29. #define MAXDIRENTS 2048
  30. #define ICONSIZE 64
  31. #define ICONSPACE 16384
  32. #define MAXROWSIZE 4096
  33. #define MAXICONS MAXDIRENTS
  34. #define MAXIMAGEINFOLEN 64
  35.  
  36. /* Directory file info */
  37. struct iconDirStruct {
  38.     char name[MAXNAMLEN+1];
  39.     int index, mtime, size, state, flags, iicon;
  40.     int type, subType, iType;
  41.     int xsize, ysize, zsize;
  42.     int ixsize, iysize;
  43. };
  44.  
  45. /* File state values */
  46. #define NOFILE       0
  47. #define NEED2CHECK   1
  48. #define CANTREAD     2
  49. #define ISIMAGE      3
  50. #define NOTIMAGE     4
  51. #define NEED2ICONIFY 5
  52. /* File flag bits */
  53. #define UNREFFLAG    0
  54. #define REFFLAG      1
  55. #define DIRTYFLAG    2
  56.  
  57. /* Useful global variables for support routines.  Don't change them! */
  58. extern char  theDirName[]; /* Full path name of current directory. */
  59. extern char origDirName[]; /* Full path name of current working directory when
  60.                   program was started. */
  61. extern int modKeys;        /* Bit fields hold state of modifier keys... */
  62. extern int useIconFiles;   /* TRUE=> Browsing file rather than directory */
  63. #define SHIFTKEYBIT 1
  64. #define CTRLKEYBIT  2
  65. #define ALTKEYBIT   4
  66.  
  67. /* Structure containing image file type-specific routines:
  68.  *
  69.  * type is a unique integer ID for this image type.
  70.  *
  71.  * Check() checks file descriptor fd. If file is recognized,
  72.  * sets ids->xsize, ids->ysize, ids->zsize, and ids->subType, and returns TRUE.
  73.  *
  74.  * Iconify() opens ids->name, and creates an ABGR icon, ids->ixsize by
  75.  * ids->iysize by 32 bits deep centered in the int bitmap[ICONSIZE][ICONSIZE]
  76.  * array. Returns FALSE on any error.
  77.  *
  78.  * Info() uses the contents of ids->subType to create a description
  79.  * string in buf.  A pointer to the string is returned.
  80.  *
  81.  * Open() performs the action associated with a double-click on the
  82.  * icon, usually firing up a viewer.
  83.  *
  84.  * To add support for a new image type, create versions of each of these
  85.  * routines, then add their names to the ImageFn array in ibrowse.c along
  86.  * with a unique integer image type identifier.
  87.  */
  88.  
  89. struct ImageFnStruct {
  90.     int type;
  91.     int   (*Check)(struct iconDirStruct *ids, int fd);
  92.     int (*Iconify)(struct iconDirStruct *ids, unsigned long *bitmap);
  93.     char * (*Info)(struct iconDirStruct *ids, char buf[MAXIMAGEINFOLEN]);
  94.     void   (*Open)(struct iconDirStruct *ids);
  95. };
  96.  
  97.  
  98.  
  99.